from typing import Iterable

import scrapy
from scrapy import Request


class TestSpider(scrapy.Spider):
    name = "test"
    allowed_domains = ["httpbin.org"]   #允许通过的请求的域名 也就是对该地址进行抓取
    start_urls = ["https://httpbin.org"]    #起始抓取地址
    # start_urls = [f"https://httpbin.org/get/{i}" for i in range(1,11) ]    #一次性布置10页抓取任务  简单的多页抓取

    def start_requests(self) -> Iterable[Request]:
        """
        如果需要定义别的请求方式或者需要传递参数的话就要重写起始请求start_request方法
        :return:可迭代请求对象
        """
        yield scrapy.Request("https://httpbin.org/post", method="POST")

    def parse(self, response):
        """
        对起始抓取地址解析方法
        :param response:
        :return:
        """
        # print(response.text)  #抓文本信息
        print(response.body)    #抓图片等二进制信息
        # print(response.json(),type(response.json()))  #json数据
